package cn.b.sky.common.utils;

/**
 * 
 * <strong>Title : DatabaseUtils.java<br></strong>
 * <strong>Package : cn.b.sky.common.utils<br></strong>
 * <strong>Description : </strong>数据库工具类<br> 
 * <strong>Create on : 2016年7月5日 下午3:49:11<br></strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人|修改日期|修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public class DatabaseUtils {

  private DatabaseUtils() {
    super();
  }

  /**
   * 
   * <strong>Title : isConstraintsError<br></strong>
   * <strong>Description : </strong>判断是否为外键约束异常<br> 
   * <strong>Create on : 2016年7月5日 下午3:51:10<br></strong>
   * <p>
   * @param errorMsg
   * @return
   * boolean
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public static boolean isConstraintsError(String errorMsg) {
    if (errorMsg.contains("ORA-02292") || errorMsg.contains("违反完整约束条件 ")
        || errorMsg.contains("DataIntegrityViolationException")
        || errorMsg.contains("Cannot delete or update a parent row")) {
      return true;
    }
    return false;
  }

  /**
   * 
   * <strong>Title : isExistingPKError<br></strong>
   * <strong>Description : </strong>主键唯一错误<br> 
   * <strong>Create on : 2016年10月21日 上午9:23:43<br></strong>
   * <p>
   * @param errorMsg
   * @return
   * boolean
   * @throws 
   * @author Yantao.Lu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public static boolean isExistingPKError(String errorMsg) {
    if (errorMsg.contains("ORA-00001") || errorMsg.contains("违反唯一约束条件 ") || errorMsg.contains("DuplicateKeyException")
        || errorMsg.contains("Duplicate entry")) {
      return true;
    }
    return false;
  }
}
